package io.terminus.spzx.manager.mapper;

import io.terminus.spzx.model.entity.product.ProductSku;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author lichunlong lcl253137@alibaba-inc.com
 * @Desc 商品SKU管理Mybatis Mapper
 * @Date 2024-10-11
 */
@Mapper
public interface ProductSkuMapper {

    /**
     * 根据商品ID查询商品SKU
     *
     * @param id 商品ID
     * @return 商品SKU
     */
    List<ProductSku> selectByProductId(Long id);

    /**
     * 保存商品SKU
     *
     * @param productSku 商品SKU
     */
    void save(ProductSku productSku);

    /**
     * 修改商品SKU
     *
     * @param productSku 商品SKU
     */
    void updateById(ProductSku productSku);

    /**
     * 删除商品SKU
     *
     * @param id 商品ID
     */
    void deleteByProductId(Long id);

    /**
     * 更新商品库存
     *
     * @param skuId SKU ID
     * @param num   库存数量
     */
    void updateSale(@Param("skuId") Long skuId, @Param("num") Integer num);
}
